package javabook.ch06;
//상속 관계의 클래스에서 객체의 형변환 가능
	class Acast {
	  int a=1; }
	class Bcast extends Acast  {
	  int b=2; }
	class Ccast extends Bcast  {
	  int c=3; }

	class TestCasting {
	  public static void main(String[] args) {
	    Acast refA;           
	    // Acast 타입의 객체 refA 선언
	    refA = new Ccast();  
	    /* Acast 타입의 객체 참조 변수 refA에 Ccast 클래스의 객체를 
	       생성하여 할당 */
	    System.out.println("refA.a의 값은 "+refA.a);
	    //System.out.println("refA.b의 값은 "+refA.b);
	    
	    // 1 오류나는 경우 
	    // Ccast 클래스의 멤버인 c에 접근 시도. 에러 발생
	    //System.out.println("refA.c의 값은 "+refA.c);
	    
	    
	    // 2 오류나는 경우 
        //Ccast refC = new Acast();  
        // 에러 발생
        //System.out.println("refC.a의 값은 "+refC.a);

	  }
	}


